// 这是一个调用fork函数创建一个子进程，然后分别打印输出子进程和父进程中的变量的实例
// 需要注意的是虽然33行的printf函数只有一句，但是会分别在子进程和父进程中被执行一遍，所有有两个输出的字符串行
// 由于父进程调用了sleep语句对自身进行了休眠操作，所有其会比子进程晚两秒执行该printf函数语句
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>

// 外部变量
int glob = 6;

int main(void){
	
	// 创建内部变量
	int var = 88;

	pid_t pid;

	printf("创建进程前!\n");

	if( (pid = fork()) < 0 ){
		printf("创建子进程失败!\n");
		return -1;
	}else if(pid == 0){
		// 现在是子进程
		printf("创建子进程成功!\n");
		var++;
		glob++;
	}else{
		// 现在是父进程
		sleep(2);
	}

	printf("进程标识符为%d, glob = %d, var = %d\n", getpid(), glob, var);
	return 0;
}
